/*
 * Core.h
 *
 *  Created on: Sep 29, 2009
 *      Author: tiago.zaccaro
 */

#ifndef CORE_H_
#define CORE_H_

#include "Prerequisites.h"
#include "Singleton.h"
#include "Graphics/GraphicsManager.h"
#include "GameStates/GameScreen.h"

namespace AcquaEngine {

class Core : public Singleton<Core> {
protected:
	Graphics::GraphicsManager *mGraphicsManager;
public:
	Core();
	virtual ~Core();
	bool initialise();
	void run();

	Graphics::GraphicsManager *getGraphicsManager();
};

ACQUAENGINE_INLINE Core &getCore() {
	return Core::getSingleton();
}

ACQUAENGINE_INLINE Core *getCorePtr() {
	return Core::getSingletonPtr();
}

}

#endif /* CORE_H_ */
